home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 19 / Mac Magazin and MacEasy Magazine CD - Issue 19.iso / Utilities / uae-0.4 / amiga / transdisk.c < prev    next >
C/C++ Source or Header  |  1996-02-05  |  1KB  |  58 lines

  1.  
  2. #include <stdio.h>
  3.  
  4. #include <exec/devices.h>
  5. #include <exec/io.h>
  6. #include <exec/memory.h>
  7. #include <devices/trackdisk.h>
  8.  
  9. #include <clib/alib_protos.h>
  10. #include <clib/exec_protos.h>
  11.  
  12.  
  13. int main(int argc, char **argv)
  14. {
  15.     struct IOStdReq *ioreq;
  16.     int signal;
  17.     struct MsgPort *port;
  18.  
  19.     UBYTE *buffer;
  20.     char devicebuf[256];
  21.     char *devicename = "trackdisk.device";
  22.     char devicenum = 0;
  23.     int i;
  24.  
  25.     for (i = 1; i < argc; i++) {
  26.     if (isdigit(*(argv[i])))
  27.         devicenum = atoi(argv[i]);
  28.     else {
  29.         sprintf(devicebuf, "%s.device", argv[i]);
  30.         devicename = devicebuf;
  31.     }
  32.     }
  33.     buffer = AllocMem(512, MEMF_CHIP);
  34.     port = CreatePort(0, 0);
  35.     if (port) {
  36.     ioreq = CreateStdIO(port);
  37.     if (ioreq) {
  38.         if (OpenDevice(devicename, devicenum, ioreq, 0) == 0) {
  39.         int tr, sec;
  40.         ioreq->io_Command = CMD_READ;
  41.         ioreq->io_Length = 512;
  42.         ioreq->io_Data = buffer;
  43.         for (tr = 0; tr < 160; tr++) {
  44.             for (sec = 0; sec < 11; sec++) {
  45.             ioreq->io_Offset = 512 * (tr * 11 + sec);
  46.             DoIO(ioreq);
  47.             fwrite(buffer, sizeof(UBYTE), 512, stdout);
  48.             }
  49.         }
  50.         CloseDevice(ioreq);
  51.         } else
  52.         fprintf(stderr,"Unable to open %s unit %d\n", devicename, devicenum);
  53.         DeleteStdIO(ioreq);
  54.     }
  55.     }
  56.     FreeMem(buffer, 512);
  57. }
  58.